#ifndef __EVENT_HPP__
#define __EVENT_HPP__

#include <boost/statechart/event.hpp>

namespace fsm
{
	namespace sc = boost::statechart;

	struct EvStart : sc::event<EvStart> {};
	struct EvStop : sc::event<EvStop> {};
	struct EvTick : sc::event<EvTick> {};

	struct EvSearch : sc::event<EvSearch> {};
	struct EvSearchEnd : sc::event<EvSearchEnd> 
	{
		EvSearchEnd()
		{}

		EvSearchEnd(int id)
			: monster_id_(id)
		{}

		int monster_id_;
	};

	struct EvAttack : sc::event<EvAttack>
	{
		EvAttack(int id)
			: monster_id_(id)
		{}

		int monster_id_;
	};

	struct EvAttackEnd : sc::event<EvAttackEnd> {};

	struct EvMoveTo : sc::event<EvMoveTo>
	{
		EvMoveTo(int x, int y)
			: x_(x), y_(y)
		{}

		int x_;
		int y_;
	};
	struct EvMoveEnd : sc::event<EvMoveEnd> {};

}//namespace fsm

#endif//__EVENT_HPP__